The present invention relates generally to computer systems and in particular to managing software content in virtual desktop environments.
In physical environments, a single computing device comprises a single operating system in which the user may run application programs as desired. Similarly, a server computing device runs a single operating system that runs application programs.
Such physical environments appear to be costly because each computing device needs a complete set of processors, memory, and input/output devices to properly function whether it is being used or not. Furthermore, physical environments can also be inefficient in that some of the computing devices which are not processing tasks are set in an idle state, waiting for a task during a certain time until workloads increase.
Virtual desktop environments have been developed to overcome the deficiencies of physical environments. In a virtual desktop environment, more than one operating system can run on a single computing device, sharing resources such as memory and processors.
A virtual desktop environment includes virtual servers and virtual desktops for hosting multiple operating systems and multiple applications locally and in remote locations, avoiding thereby physical and geographical limitations.
Virtual desktop environments are based on application virtualization that encapsulates the applications from the operating system, and include virtual machines (VM)s and virtual appliances (VA)s. A virtual machine is a tightly isolated software container that can run its own operating system and applications as if it were a physical computer. A virtual machine further comprises a virtual (i.e., software-based) CPU, RAM hard disk and network interface card (NIC).
Virtual appliances are provided to pre-build software solutions comprised of one or more virtual machines that are packaged, updated, maintained and managed as a unit. Unlike a traditional hardware appliance, these software appliances make it possible for the user to easily acquire, deploy and manage, pre-integrated solution stacks.
As virtualization becomes more and more popular, computer desktops tend to contain not only the common native applications installed thereon but also application packages (or software products) available in virtualization environments.
All applications deployed in a virtual desktop environment must coexist in a common runtime environment which is the operating system in which they have been installed. However, the installation of a new application may impact an existing environment.
An existing approach taken to detect and manage software content installed in a virtual desktop environment relies on usage signatures to determine if a given application is running on a target machine and installation signatures to determine if the application is simply installed on the target machine.
However, software products that create application virtualization environments do not register an installed application in operating system registries and do not execute any kind of explicit installation action that allows tracking the product installation. Further, the products that create application virtualization environments do not always run an application executable file name and size in the manner it would in a normal environment.
Another approach taken in U.S. Pat. Pub. No. 2009/0241105 uses the identifying signature of the main dice associated with an application asset stored on a target computer, when an application is deployed and executed in the target computer. The identifying signature is added to the signature catalog as a new type of signature to identify “virtualized installations”. The detection of this virtual installation signature flag in a target computer is used to detect that the associated application is virtually installed on the target machine and running therein. However this approach is limited to the single system and does not provide a complete view of the software applications installed in a virtual desktop environment.